package tchk.xyz.lingyuntutorminiprogram.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;

import java.util.ArrayList;
import java.util.List;

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate();

        // 1. 创建一个消息转换器，用于处理JSON
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

        // 2. 创建一个列表，来设置这个转换器支持的内容类型
        List<MediaType> supportedMediaTypes = new ArrayList<>();
        supportedMediaTypes.add(MediaType.APPLICATION_JSON);
        supportedMediaTypes.add(MediaType.TEXT_PLAIN); // <-- 【核心】在这里加上对 text/plain 的支持
        supportedMediaTypes.add(MediaType.TEXT_HTML);  // 顺便也加上对HTML的支持，更健壮

        // 3. 将设置好的列表应用到转换器上
        converter.setSupportedMediaTypes(supportedMediaTypes);

        // 4. 将我们自定义好的转换器添加到RestTemplate里，并且放在第一位，优先使用
        restTemplate.getMessageConverters().add(0, converter);

        return restTemplate;
    }
}